一种基于IP/MPLS/BGP的多域组播一体化数据分发结构及方法,该结构将网络划分为核心MPLS组播域和多个边缘IP-ba
sed PIM组播域。该发明提出了MPLS组播边缘路由器MMBR的概念;提出了从IP组播地址到MPLS标签的Hash方法;利用扩展的BGP协议解决了MPLS核心组播域的组播用户发现问题。该发明含有两个步骤:步骤一,网络中的组播路由建立过程;步骤二,网络中的组播数据转发过程。本发明使得各个组播用户只需要管理自己的单一IP组播域,而运营商只需管理自己的MPLS核心组播域。本发明有利于组播用户使用各种组播服务;本发明提供了极高的服务扩充能力和灵活性,有利于运营商进行部署。
1.一种基于IP/MPLS/BGP的多域组播一体化数据分发系统,其特征 是:把网络划分为一个核心MPLS组播域和多个边缘IP-ba
sedxa0PIM组播域, 多个IP-ba
sedxa0PIM组播域通过MPLS核心组播域进行互联,任意两个 IP-ba
sedxa0PIM组播域都不直接互联; 所有的IP-ba
sedxa0PIM组播域都使用协议无关组播PIM组播边缘路由器 和MPLS核心组播域相连;同时,PIM组播边缘路由器也是MPLS核心组 播域的边缘路由器,从MPLS核心组播域的角度来看,PIM组播边缘路由 器还可以被称为MPLS组播边缘路由器; MPLS核心组播域负责建立多个IP-ba
sedxa0PIM组播域之间的域间组播 路由,完成多个IP-ba
sedxa0PIM组播域之间的域间组播数据快速转发,MPLS 核心组播域不需要IP层组播路由协议以及IP层组播路由表的支持,仅需 维护MPLS组播转发表;所有的组播源和组播用户都分布在各个IP-ba
sed PIM组播域中,IP-ba
sedxa0PIM组播域建立本域内的IP层组播路由,完成本 域内的IP层组播数据转发。
2.一种基于IP/MPLS/BGP的多域组播一体化数据分发方法,其特征 在于:包含以下步骤: 步骤一:基于IP/MPLS/BGP的多域组播一体化网络中的组播路由建立 过程; 在步骤一中,PMBR指协议无关组播PIM组播边缘路由器;PMBR同 时也是MMBR,MMBR指MPLS组播边缘路由器;步骤一包含以下步骤: 步骤a:边缘IP-ba
sedxa0PIM组播域内终端组播用户通过IGMP或MLD 协议加入或退出一个组播组,IP-ba
sedxa0PIM组播域根据组播用户加入或退 出信息生成PIM组播路由表; 步骤b:边缘IP-ba
sedxa0PIM组播域内终端用户触发的PIM加入或剪枝 消息到达PMBR;PMBR将本次的组播路由信息在组播边缘路由表MBRF 中进行更新; 步骤c:当组播用户加入一个组播组; 当组播用户加入新的组播组,PMBR则对本次用户加入的组播地址进 行hash计算,生成一个MPLS标签;同时PMBR利用扩展的MP-BGP将 更新后的组播路由信息发送到其他PMBR;扩展的MP-BGP是由BGP协 议扩展而来,MCAST_NLRI为扩展的MP-BGP中的一种新的网络层可达 性信息NLRI; 当组播用户加入已有的组播组,则将此次收到组播用户PIM加入消息 的路由器出接口添加到组播边缘路由表MBRF的相应表项中;PMBR在这 种情况下不使用扩展的MP-BGP广播路由更新消息; 扩展的MP-BGP中的MCAST_NLRI包含4个字段:初始PMBR路由 器IP地址,组播源IP地址,组播群组IP地址,MPLS标签;各字段具体 描述如下: 初始PMBR路由器IP地址为最初发布本条路由的PMBR路由器的IP 地址,它是初始PMBR路由器上任何一个接口的任何可用IP地址; 组播源IP地址为组播用户要加入的组播组的源地址,该值为0则表示 不限定组播源; 组播群组IP地址为组播用户要加入的组播组群组地址; MPLS标签为初始PMBR路由器为组播组IP地址所分配的标签,其中 MPLS标签的前20比特包含标签值,剩余的比特为“栈底”; 此外,如果一条扩展的MP-BGP协议的更新消息中携带 MP_REACH_NLRI属性,该MP_REACH_NLRI属性中的Nextxa0Hop域应被 设置为发布本条路由的PMBR路由器上任何一个接口的任何可用IP地址; 步骤d:当组播用户退出一个组播组; 当要退出的组播用户不是其所在组播组的最后一个组播用户,则将本 次退出组播用户的在MBRF表项中的出接口删除,PMBR在这种情况下不 使用扩展的MP-BGP广播路由更新消息; 当要退出的组播用户是组播组的最后一个组播用户,则将组播边缘路 由表MBRF的相应表项删除,同时PMBR使用扩展的MP-BGP广播路由 更新消息; 步骤e:PMBR选择是否使用路由过滤技术,以确定是否要发送或接 收扩展的MP-BGP路由更新消息; 步骤f:组播源的PMBR的组播边缘路由表MBRF在更新后,触发 MPLS信令协议RSVP或LDP,根据变化后的MBRF信息建立或拆除组播 LSP路径树; 步骤二:基于IP/MPLS/BGP的多域组播一体化网络中的组播数据转发 过程; 在步骤二中,PMBR指PIM组播边缘路由器;PMBR同时也是MMBR, MMBR指MPLS组播边缘路由器;步骤二包含以下步骤: 步骤g:IP报文格式的组播数据首先在边缘IP-ba
sedxa0PIM组播域进行 转发,根据PIM协议建立的IP层组播路由表,组播数据到达组播源所在 IP-ba
sedxa0PIM组播域的PMBR; 步骤h:IP报文格式的组播数据到达PMBR后,PMBR查询组播边缘 路由表MBRF,获取MBRF中记录的路由信息; 步骤j:在继续传输分组前,根据从MBRF中获得的信息,组播源PMBR 首先把MPLS标签推送到标签堆栈上,使其成为底部或内部标签,其中的 MPLS标签由用户加入的组播地址经过hash而生成;然后组播源PMBR把 基于RSVP或LDP分配的组播LSP路径关联标签推送到标签堆栈上,使其 成为顶部或路由器标签; 步骤k:在创建标签堆栈后,组播源PMBR沿着组播LSP路径,从所 有的外发接口上把MPLS分组转发到第一跳MPLS组播路由器MMR上; MMR根据顶部标记,在运营商核心网中交换分组;组播LSP路径出口的 倒数第二台路由器弹出顶部标签,暴露底部标签,然后把分组转发到组播 LSP路径出口路由器,即组播用户的PMBR; 步骤m:组播用户PMBR收到分组后,弹出分组中的底部标签,并以 底部标签为索引搜索PMBR上的标签转发表,获得该分组的所有出接口, 并将该IP报文格式的组播数据分组从所有的出接口发送出去; 步骤n:IP报文格式的组播数据到达边缘IP-ba
sedxa0PIM组播域后,沿 PIM协议建立的IP层组播路由表到达各个终端组播用户。 所属技术领域 本发明涉及一种基于IP/MPLS/BGP的多域组播一体化数据分发结构及方法, 以及跨越多个组播域的数据分发技术,属于计算机网络技术领域。 背景技术 IP(Internetxa0Protocol,因特网协议)组播技术;组播是指同步(或接近 同步)向一组接收者发送数据的机制。它与向单个接收者发送数据(单播)和 向给定网络上的所有接收者发送数据(广播)不同,组播的发送者只需要对每 个数据包发送一次,所有的接收者就能够全部收到该数据包,数据包的复制和 转发由网络中的路由节点来完成。 IP组播则是指在IP层面上实现的这种发送数据的机制。IP组播允许目的站 点集合位于互联网上的任意位置,可以跨越互联网上任意的物理网络。 要在网络上实现IP组播,需要有组播路由协议和组播成员管理协议对组播 进行建立和维护。 IETF(Internetxa0Engineeringxa0Taskxa0Force,互联网工程任务组)的组播成员 管理协议主要包括针对IPv4的IGMP(Internetxa0Groupxa0Managementxa0Protocol, 因特网组管理协议)协议和针对IPv6的MLD(Multicastxa0Listenerxa0Discovery Protocol,组播监听发现协议)协议。它们定义了主机和路由器之间如何交互 组播组成员信息,主要用来管理主机加入或退出组播组。 组播路由协议的情况要相对复杂一些。按照IP组播树的建立过程来分,组 播路由协议可以分为两类。一类使用最短路径树方法,其组播路由协议是通过 (组播源地址,组播群组地址)对来标识一个组播任务的,如DVMRP、MOSPF和 PIM-DM协议。另一类使用共享树方法,其组播路由协议通过(*,组播群组地址) 来标识一个组播任务,其中*表示该组播任务中可以包含多个组播源,如BGMP、 CBT和PIM-SM协议。其中PIM-SM协议的共享树在一定条件下可以转换为源树。 PIM-SM(Protocolxa0Independentxa0Multicast-Sparsexa0Mode,协议无关组播- 稀疏模式)是目前使用最为广泛的IP组播路由协议,它被设计应用于广域网环 境。PIM-SM尽量避免组播源进行广播,并允许所有源采用共享树的方式转发。 在一定条件下,PIM共享树还可以向源树转换,这样会使组播路径更为优化。 IP组播路由技术已经经过很长时间的研究,发展到今天,已经形成了比较 完善的体系和协议。但由于IP组播使用了UDP进行数据传输,其可靠性仍然较 低;此外,IP组播还缺乏有效的管理和部署机制以及缺乏流量和拥塞控制机制 等保障体系,因此目前还不能得到大规模的广泛应用,而是主要应用在局域网、 企业网的范围内。 MPLS组播技术;MPLS(Multiprotocolxa0Labelxa0Switching,多协议标签交换) 是把网络层路由技术和数据链路层交换技术结合起来的一种技术。它可以有效 的提高网络传输效率,同时还具有了流量控制、快速路由收敛、QoS保证、VPN 等功能。 目前,各运营商在骨干网中大量采用MPLS技术。在2004通过总验收的中国 网通高速宽带互联网CNCnet,第一个在商用全网统一采用MPLS技术。CNCnet 是一个全国性的高速宽带IP骨干网络,由中国网通承担建设与运营,于2000 年10月开通并投入试运营。依托此网,中国网通目前开展的主要业务有:国内、 国际带宽批发业务、高速公众互联网接入业务、高速网络型数据中心服务、 VPN(虚拟专网)、虚拟ISP、IP长途电话业务。 中国电信从2003年开始部署的中国电信下一代承载网(又称CN2),采用了 Juniper、思科、华为和阿尔卡特四家厂商的高端路由器。在2005年,这些设 备已经被逐步部署到覆盖全国各省市的电信网络中。CN2全网启用MPLS,最多 支持5级标签,提供VPN业务,启用路由快速收敛等。目前,中国电信可以在 全国范围内向企业用户提供MPLS/VPN业务。通过与境外知名运营商的合作, 中国电信也已经开通了国际MPLS/VPN业务,覆盖地区包括北美、香港、台湾 及日本。 MPLS网络中的组播技术研究起步较晚,到目前为止,IETF还没有在MPLS网 络中支持组播的相关标准。MPLS网络组播技术的研究目标是结合MPLS技术和组 播技术的优点,利用MPLS技术的优点来优化网络组播的性能,同时利用组播技 术的优点来节省MPLS网络的网络资源。 目前关于MPLS网络组播技术的研究主要集中于组播路由协议。IETF已经提 出了一篇关于MPLS网络组播的draft草案,该草案主要讨论了如何扩展RSVP 协议以使其支持MPLS网络组播树的建立。一些个人和研究组织也提出了一些对 LDP协议的组播扩展方案,并向IETF提交了个人draft文档。 扩展的RSVP协议草案本身并没有指明发现组播用户的机制,它假设网络中 存在组播路由信息。该协议草案所作的工作是根据已有的组播路由信息在MPLS 网络中构建MPLS组播LSP路径树。 由于MPLS技术是针对核心网络设计,MPLS网络组播技术也将主要应用于核 心网络。MPLS技术的面向连接性和标签资源的有限性等特点,使得MPLS组播技 术并不适合于在有组播终端用户接入的边缘网络中使用。如何有效的管理和部 署MPLS组播网络也是一个尚未解决的问题。 下一代网络中组播技术;当前的互联网络是在上世纪90年代初发展起来的, 基于的协议是IPv4,随着Internet用户和应用的不断增加,IPv4已渐渐暴露 出地址空间严重不足、数据传输缺乏质量保证、数据安全性难以保证和对组播 功能支持有限等问题。这在一定程度上限制了IPTV等流媒体应用的进一步发展。 20世纪90年代中期,IETF为了更好地满足互联网络的未来发展需求,设计 了一种新的IP协议IPv6,其特性包括:更大的地址空间;简洁的数据报头;提 供更好的服务质量;更为灵活的组播方式。 相对于IPv4技术,IPv6技术在多播方面拥有众多的优势。比如,IPv6技术 拥有更大的多播地址空间,可以为用户提高更多种类的多播服务;众多的IPv6 地址空间可以保证用户享受端到端服务,消除了NAT对IP多播技术带来的负面 影响;IPv6多播地址结构发生改变,更有利于多播功能的实现等。 在IPv6多播地址中增加了标识和范围两个字段。标识字段由4个独立位标 识组成,目前只指定了第4位,用来表示该地址是熟知的组播地址还是在特定 场合下使用的临时组播地址。其他3个标识位保留供将来用。范围字段有4位, 用来表示组播的范围是只包括同一本地网、同一站点、同一机构中的节点,还 是包括IPv6全球地址空间中任何位置的节点。根据标识字段和范围字段,同一 个组地址可以表示不同的组。 在下一代网络将要支持的多种业务中,多媒体通信业务是发展最为迅速、竞 争最为激烈的领域之一。在Internet上实现的视频点播(VOD)、可视电话、视 频会议等视音频业务和一般业务相比,有着数据量大、时延敏感性强、持续时 间长等特点。因此解决视音频业务所要求的网络利用率高、传输速度快、实时 性强的问题,就要采用不同于单播、广播机制的转发技术及QoS服务保证机制 来实现,而组播技术是解决这些问题的关键技术。 MPLS技术作为下一代骨干网上使用的关键技术,它可以有效的提高整个核 心网的网络传输效率;IP组播技术同样是下一代网络中的关键技术,它可以支 持多业务,提高网络利用率。将IP组播技术和MPLS技术结合起来使用,就可 以同时解决核心网上的服务质量问题和边缘网上的传输效率问题,为在整个网 络上部署IPTV等多媒体通信业务提供必要的技术支持。 美国国家科学基金会目前也正计划从根本上重新设计互联网,下一代互联网 的研究重点是网络安全,手机、无线和传感器网络共同组成的普及计算 (pervasivexa0computing)环境,重要基础设施控制,以及处理新型服务的能力。 以解决现有的各种问题,打造一个更适合未来计算机环境的下一代互联网,并 于2005年8月22日公布了一个名为“全球网络环境调查”(GENI)的项目。 虽然组播技术还存在一些实际应用上的障碍,但是这种数据传输思想给网络 和应用所带来的益处却是显而易见的,因此有理由相信,在下一代网络中组播 技术将会得到广泛的应用。 发明内容 为了克服现有技术的不足,本发明提供一种基于IP/MPLS/BGP的多域组播一 体化数据分发结构及方法。 该方案将网络划分为核心MPLS组播域和多个边缘IPxa0PIM组播域。在该方案 中,本文解决了以下具体的技术问题: 1.提出了MPLS组播边缘路由器(MMBR,MPLSxa0Multicastxa0Borderxa0Router) 的概念,解决了IP-ba
sedxa0PIM组播域和MPLS核心组播域的域间路由问 题。 2.提出了从IP组播地址到MPLS标签的Hash方法,利用该方法和双层标 签机制实现了从MPLS组播域到IP-ba
sedxa0PIM组播域的数据快速转发。 3.利用扩展的BGP协议解决了MPLS核心组播域的组播用户发现问题。 在该方案中,每个客户只需要管理属于自己的局域网或企业网,在自己的局 域网或企业网内部署单一的IP组播域,而不需要管理和其他客户之间域间路由 问题,这使得即使客户缺乏组播路由经验,组播用户仍可以使用该方案提供的 组播服务。 在该方案中,运营商主要管理MPLS核心组播域,并解决多个客户的域间组 播路由问题。每个IP-ba
sedxa0PIM组播域可以由组播用户自行管理,而不需要运 营商进行管理和访问。这种网络模型提供了极高的服务扩充能力和灵活性,有 利于网络运营商的部署和使用。 本发明解决其技术问题所采用的技术方案是: 一种基于IP/MPLS/BGP的多域组播一体化数据分发结构,该结构中包含一 个MPLS核心组播域和任意多个IP-ba
sedxa0PIM组播域,多个IP-ba
sedxa0PIM组播 域通过MPLS核心组播域进行互联,任意两个IP-ba
sedxa0PIM组播域都不直接互 联: MPLS核心组播域:MPLS核心组播域是一个支持MPLS组播技术的核心通信网 络,它负责建立多个IP-ba
sedxa0PIM组播域之间的域间组播路由,并完成多个 IP-ba
sedxa0PIM组播域之间的域间组播数据快速转发。MPLS核心组播域由运营商 进行管理和维护。位于MPLS核心组播域边缘的路由器为MPLS组播边缘路由器 MMBR,每个MMBR必须运行扩展的MP-BGP(Multiprotocolxa0Extensionsxa0forxa0BGP-4) 协议,以实现MPLS核心组播域的组播用户发现;MMBR必须完成从IP组播地址到 MPLS标签的Hash过程,以实现从MPLS组播域到IP-ba
sedxa0PIM组播域的数据快速 转发。MPLS核心组播域可以利用LDP或RSVP协议来建立MPLS组播LSP路径树。 IP-ba
sedxa0PIM组播域:各个IP-ba
sedxa0PIM组播域的地位是对等的,所有 的组播源和组播用户都分布在各个IP-ba
sedxa0PIM组播域中。IP-ba
sedxa0PIM组播 域是支持IP层PIM组播路由协议的边缘通信网络,它负责建立本域内的IP层 组播路由,并完成本域内的IP层组播数据转发。IP-ba
sedxa0PIM组播域由各个企 业或团体独立管理和维护。 所有的IP-ba
sedxa0PIM组播域都使用PIM组播边缘路由器(PMBR,PIM Multicastxa0Borderxa0Router)和MPLS核心组播域相连。同时,PMBR也是MPLS核 心组播域的边缘路由器,从MPLS核心组播域的角度来看,PMBR可以被称为MPLS 组播边缘路由器(MMBR,MPLSxa0Multicastxa0Borderxa0Router)。PMBR/MMBR必须维 护着一张MPLS标签转发表(MLST,MPLSxa0Labelxa0Switchxa0Table)(表1)和一张 组播边缘路由表(MBRF,Multicastxa0Borderxa0Routingxa0andxa0Forwardingxa0table) (表2)。每个PIM组播域的PMBR同时作为该组播域的聚合点(RP,Rendezvous Point)。如果用户想在PIM组播域内另外配置RP,则需要在PIM组播域内采用 anycast-RP和MSDP机制,以保证PMBR同时具有RP的功能。 一种基于IP/MPLS/BGP的多域组播一体化数据分发方法,含有以下步骤; 步骤一:网络中的组播路由建立过程;含有以下步骤; 步骤1:边缘IP-ba
sedxa0PIM组播域内终端组播用户通过IGMP或MLD协议加 入或退出一个组播组,PIM组播域根据组播用户加入或退出信息生成PIM组播 路由表; 步骤2:边缘IP-ba
sedxa0PIM组播域内终端用户触发的PIM加入/剪枝消息会 到达PMBR/MMBR;PMBR/MMBR把本次的组播路由信息在组播边缘路由表MBRF中 进行更新; 步骤3:当组播用户加入一个组播组; 当组播用户加入新的组播组,则对本次用户加入的组播地址进行Hash计算, 生成一个MPLS标签;同时PMBR/MMBR利用扩展的MP-BGP(Multiprotocol Extensionsxa0forxa0BGP-4)把更新后的组播路由信息到其他PMBR/MMBR; 当组播用户加入已有的组播组,则把到达本次组播用户PIM加入消息到达 的路由器出接口添加到组播边缘路由表MBRF的相应表项中;PMBR/MMBR在这种 情况下不使用MP-BGP广播路由更新消息。 步骤4:当组播用户退出一个组播组; 当要退出的组播用户不是其所在组播组的最后一个组播用户,则把本次退 出组播用户的在MBRF表项中的出接口删除,PMBR/MMBR在这种情况下不使用 MP-BGP广播路由更新消息; 当要退出的组播用户是组播组的最后一个组播用户,则把组播边缘路由表 MBRF的相应表项删除,同时使用MP-BGP广播路由更新消息; 步骤5:PMBR/MMBR可以选择是否使用路由过滤技术,以确定是否要发送或 接收BGP路由更新消息; 步骤6:组播边缘路由表MBRF在更新后,触发MPLS信令协议(RSVP或LDP) 根据变化后的MBRF信息建立或拆除组播LSP路径树; 本发明在这一阶段对BGP协议进行了扩展,定义了一种新的NLRI(Network Layerxa0Reachabilityxa0Information),称为MCAST_NLRI。 本发明在这一阶段提出了将组播地址进行Hash计算,生成一个MPLS标签的 方法。 步骤二:网络中的组播数据转发过程;在组播路由信息正确建立之后,组 播数据就可以沿组播路由进行正确的转发;含有以下步骤; 步骤1:IP报文格式的组播数据首先在边缘IP-ba
sed组播域进行转发,根 据PIM协议建立的IP层组播路由表,组播数据到达组播源所在PIM组播域的 PMBR/MMBR; 步骤2:IP报文格式的组播数据到达PMBR/MMBR后,PMBR/MMBR查询组播 边缘路由表MBRF,获取MBRF中记录的路由信息; 步骤3:在继续传输分组前,根据从MBRF中获得的信息,组播源PMBR/MMBR 首先把MPLS标签(组播IP地址的hash结果)推送到标签堆栈上,使其成为底部 (或内部)标签;然后组播源PMBR/MMBR把基于RSVP或LSP分配的组播LSP路径 关联标签推送到标签堆栈上,使其成为顶部(或路由器)标签; 步骤4:在创建标签堆栈后,组播源PMBR/MMBR沿着组播LSP路径,从所 有的外发接口上把的MPLS分组转发到第一跳MPLS组播路由器(MMR,MPLS Multicastxa0Router)上。MMR根据顶部标记,在运营商核心网中交换分组。组播 LSP路径出口的倒数第二台路由器弹出顶部标签(暴露底部或内部标签),把分 组转发到组播LSP路径出口路由器(组播用户PMBR/MMBR); 步骤5:组播用户PMBR/MMBR收到分组后,弹出分组中的底部标签,并以 底部标签为索引搜索PMBR/MMBR上的标签转发表,获得该分组的所有出接口, 并将该IP报文格式的组播数据分组从所有的出接口发送出去; 步骤6:IP报文格式的组播数据到达边缘IP-ba
sedxa0PIM组播域后,沿PIM 协议建立的IP层组播路由表到达各个终端组播用户。 本发明在这一阶段提出了利用双层标签机制转发MPLS组播分组的机制,实 现了从MPLS组播域到IP-ba
sedxa0PIM组播域的数据快速转发。 本发明的有益效果是,本发明技术方案提出了IP/MPLS/BGP多域组播体系 结构,该体系结构是一种组播技术的有效的管理和部署机制,可以促进客户和 运营商对组播技术的使用。本发明技术方案带来的有益效果如下: 在本体系结构中,每个边缘IP-ba
sedxa0PIM组播域不与其它边缘IP-ba
sedxa0PIM 组播域直接交换路由信息。组播用户不必处理域间路由问题,因为解决域间路 由问题是运营商的职责,这使得即使组播用户缺乏组播路由经验,组播用户仍 可以使用该模型提供的组播服务。 多个组播域互联,外围为IP-ba
sed组播域,核心为MPLS组播域的网络模 型接近于实际的互联网模型。每个IP-ba
sedxa0PIM组播域可以由组播用户自行管 理,而不需要运营商进行管理和访问,有利于网络运营商的部署和使用。 使用双层标签的MPLS分组转发机制加快了PMBR/MMBR路由器的路由表查找 速度,增加了PMBR/MMBR的组播报文转发速度。 对MP-BGP进行扩展实现了MPLS核心网络的组播用户发现。 附图说明 下面结合附图和实施例对本发明进一步说明。 图1是本发明的网络拓扑示意图; 图2是实施例2的流程示意图; 图3是实施例3的网络拓扑示意图; 图4是实施例3的流程示意图。 具体实施方式 实施例1:一种基于IP/MPLS/BGP的多域组播一体化数据分发结构, 图1是网络拓扑示意图,网络中包含一个MPLS核心组播域和三个不同的 IP-ba
sedxa0PIM组播域。 在图1中,所有的IP-ba
sedxa0PIM组播域都使用PIM组播边缘路由器(PMBR, PIMxa0Multicastxa0Borderxa0Router)和MPLS核心组播域相连。同时,PMBR也是MPLS 核心组播域的边缘路由器,从MPLS核心组播域的角度来看,PMBR可以被称为 MPLS组播边缘路由器(MMBR,MPLSxa0Multicastxa0Borderxa0Router)。 在方案中,每个PIM组播域的PMBR同时作为该组播域的RP。如果用户想在 PIM组播域内另外配置RP,则需要在PIM组播域内采用anycast-RP和MSDP机 制,以保证PMBR同时具有RP的功能,这一点不在本方案的讨论范围之内。 在PMBR/MMBR上必须维护着一个MPLS标签转发表(MLST,MPLSxa0Labelxa0Switch Table)和一个组播边缘路由表(MBRF,Multicastxa0Borderxa0Routingxa0and Forwardingxa0table)。 MPLS标签转发表的标签项存储的是MPLS组播报文中的底层标签,出接口项 存储的是组播报文向边缘IP-ba
sedxa0PIM组播域转发的路由器出口。通过使用该 MPLS标签转发表和双层标签机制,可以实现从PMBR/MMBR到边缘IP-ba
sedxa0PIM 组播域的组播数据快速转发。 组播边缘路由表MBRF存储的是组播用户信息,它记录了通往各个组播用户 的组播路径。 xa0
表1xa0MPLS标签转发表 xa0
<源地址,目的地址,底层
标签>xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0xa0BGP下一跳xa0xa0xa0
(可以多个)出接口(可以
多个)xa0xa0xa0xa0xa0xa0顶层
标签是否进行了
路径聚合xa0xa0
|
表2xa0组播边缘路由表MBRF 实施例2: 一种基于IP/MPLS/BGP的多域组播一体化数据分发方法,含有以下步骤; 步骤一网络中的组播路由建立过程; 要在网络中传输组播数据,必须首先建立正确的组播路由信息,下面列出 网络中组播路由信息的建立过程: 步骤1:边缘IP-ba
sedxa0PIM组播域内有终端组播用户使用IGMP或MLD协议 加入或退出一个组播组; 步骤2:PIM组播路由协议会根据组播用户加入或退出信息生成PIM组播 路由表;边缘IP-ba
sedxa0PIM组播域内终端用户触发的PIM加入/剪枝消息会到 达PMBR/MMBR; 步骤3:PMBR/MMBR把本次的组播路由信息在组播边缘路由表MBRF中进行 更新; 步骤4:当组播用户加入一个组播组; 当组播用户加入新的组播组,则对本次用户加入的组播地址进行Hash计算, 生成一个和其他组播地址Hash计算结果不同的MPLS标签;PMBR/MMBR利用扩展 的MP-BGP协议把组播路由信息和Hash生成的MPLS标签广播到其他PMBR/MMBR, 并将本PMBR/MMBR的地址作为路由的BGP下站; 当组播用户加入已有的组播组,则把到达本次组播用户PIM加入消息到达 的路由器出接口添加到组播边缘路由表MBRF的相应表项中;PMBR/MMBR在这种 情况下不使用MP-BGP广播路由更新消息。 步骤5:当组播用户退出一个组播组; 当要退出的组播用户不是其所在组播组的最后一个组播用户,则把本次退 出组播用户的路由器出接口在组播边缘路由表MBRF的相应表项中删除, PMBR/MMBR在这种情况下不使用MP-BGP广播路由更新消息; 当要退出的组播用户是组播组的最后一个组播用户,则组播边缘路由表 MBRF的相应表项被删除,同时使用MP-BGP广播路由更新消息; 步骤6:组播源PMBR/MMBR收到BGP更新消息后,首先通过BGP过滤器判断 它应该接收本条BGP更新消息。组播源PMBR/MMBR更新其组播边缘路由表MBRF, 同时更新触发MPLS信令协议(RSVP或LDP)向下游路由器发送标签请求消息(发 现新的组播用户)或发送标签回收消息(发现组播用户退出),建立或释放组播 LSP路径。 步骤7:组播用户PMBR/MMBR收到标签请求消息或标签回收消息后,为组播 LSP路径分配一个MPLS标签或释放MPLS标签,并逐跳向组播源PMBR/MMBR发送 标签映射消息或标签释放消息。 步骤8:组播源PMBR/MMBR收到标签映射消息后,组播LSP路径建立成功, 组播源PMBR/MMBR将其下一跳路由器分配的MPLS标签填充到组播边缘路由表 MBRF的顶层标签域。 步骤二xa0网络中的组播数据转发过程; 在组播路由信息正确建立之后,组播数据就可以沿组播路由进行正确的转 发。当一个IP-ba
sedxa0PIM组播域的组播源发送组播数据时,遵循以下的转发顺 序: 步骤9:IP报文格式的组播数据首先在边缘IP-ba
sed组播域进行转发,沿 PIM协议建立的IP层组播路由表,组播数据到达组播源所在PIM组播域的 PMBR/MMBR; 步骤10:IP报文格式的组播数据到达PMBR/MMBR后,PMBR/MMBR查询组播 边缘路由表MBRF,获得以下信息: 连接组播用户的PMBR/MMBR与组播路由一起广播的MPLS标 签(组播IP地址的hash结果); 组播路由的BGP下站IP地址(可能有多个); 从组播源PMBR/MMBR到所有BGP下站的输出接口; 从组播源PMBR/MMBR到所有BGP下站的初始MPLS标签(由RSVP或LSP在 建立组播LSP时分配的MPLS标签); 在传输分组前,组播源PMBR/MMBR首先把MPLS标签(组播IP地址的hash 结果)推送到标签堆栈上,使其成为底部(或内部)标签;组播源PMBR/MMBR把 基于RSVP或LSP分配的组播LSP路径关联标签推送到标签堆栈上,使其成为顶 部(或路由器)标签;在创建标签堆栈后,组播源PMBR/MMBR沿着从组播LSP 路径,把外发接口上的MPLS分组转发到第一跳MPLS组播路由器(MMR,MPLS Multicastxa0Router)上。 步骤11:MMR根据顶部标记,在运营商核心网中交换分组。组播LSP路径 出口LER的倒数第二台MMR路由器弹出顶部标签(暴露底部或内部标签),把分 组转发到组播LSP路径出口路由器(组播用户PMBR/MMBR)上; 步骤12:组播用户PMBR/MMBR收到分组后,弹出分组中的底部标签,并以 底部标签为索引搜索PMBR/MMBR上的标签转发表,获得该分组的所有出接口, 并将该IP报文格式的组播数据分组从所有的出接口发送出去; 步骤13:IP报文格式的组播数据到达边缘IP-ba
sedxa0PIM组播域后,沿PIM 协议建立的IP层组播路由表到达各个终端组播用户。 步骤14:组播用户收到组播数据,对其进行处理。 MP-BGP协议扩展;本文对BGP协议进行了扩展,定义了一种新的网络层可 达性信息NLRI(Networkxa0Layerxa0Reachabilityxa0Information),称为MCAST_NLRI。 在本发明中,核心网络的组播用户发现和边缘组播路由表MBRF的更新都要使用 MCAST_NLRI来完成。
![]()
ntent="drawing" img-format="tif" wi="584"/>表3xa0MCAST_NLRI格式 初始PMBR/MMBR路由器IP地址域(Originatingxa0PMBR/MMBR’sIPxa0Address) 为最初发布本条路由的PMBR/MMBR路由器IP地址,它可以是初始PMBR/MMBR路 由器上任何一个接口的任何可用IP地址。 组播源IP地址域(Multicastxa0Source’sxa0IPxa0Addr)为组播用户要加入的组 播组的源地址,该值为0则表示不限定组播源。 组播群组IP地址域(Multicastxa0Group’sxa0IPxa0Addr)为组播用户要加入的 组播组群组地址。 MPLS标签域(MPLSxa0Labels)携带初始PMBR/MMBR路由器为组播组IP地址 所分配的标签,其中前20比特包含标签值,剩余的比特为“栈底”(′′Bottomxa0of Stack′′)。 如果一条MP-BGP协议更新消息中携带MP_REACH_NLRI属性,该 MP_REACH_NLRI属性中的Nextxa0Hop域应被设置为发布本条路由的PMBR/MMBR路 由器上任何一个接口的任何可用IP地址。 实施例3: 一种基于IP/MPLS/BGP的多域组播体系结构如图3所示,该体系结构中的网 络组播路由信息建立过程按下面步骤完成: 步骤1:组播用户1想要加入一个组播群组,它首先向组播用户1的DR (Designatexa0Router,指定路由器)发送IGMP/MLD加入消息。 步骤2:组播用户1的DR收到IGMP/MLD消息后,经过PIM协议处理,并在 组播路由表中建立(*,组播群组地址)路由项;组播用户1的DR上的PIM协 议生成PIM加入消息,该消息被逐跳发送到组播用户1的PMBR/MMBR。 步骤3:组播用户1的PMBR/MMBR收到PIM加入消息后,对本次组播用户本 次加入的组播群组地址进行hash运算。组播用户1的PMBR/MMBR在标签转发表 中建立一条新的表项,将MPLS标签项填充hash结果;在出接口项填充PIM加 入消息到达的接口;将入接口设为空(NULL);将操作项设置为弹出标签(POP)。 组播用户1的PMBR/MMBR在组播边缘路由表MBRF中建立一条新的表项,将<源 地址,目的地址,底层标签>项填充为<*,组播群组地址,hash结果>;将BGP 下一跳设置为空(NULL);将出接口设置为PIM加入消息到达的接口;将顶层标 签项设置为空(NULL);将是否进行了路径聚合项设置为否(FALSE)。组播用户 1的PMBR/MMBR上组播边缘路由表MBRF的变化触发MP-BGP协议向所有的BGP对 等体发送BGP更新消息。组播用户1的PMBR/MMBR构造BGP更新消息中的 MCAST_NLRI属性,将初始PMBR/MMBR路由器IP地址域填充为本路由器上任何一 个接口的任何可用IP地址;将组播源IP地址域设置为通配项*,将组播群组IP 地址域设置为组播用户本次加入的组播群组地址;将MPLS标签域设置为hash 结果。 步骤4:组播源PMBR/MMBR收到BGP更新消息后,首先通过BGP过滤器判断 它应该接收本条BGP更新消息。组播源PMBR/MMBR在其组播边缘路由表MBRF中 建立一条新的表项,将<源地址,目的地址,底层标签>项分别填充为BGP更新 消息中的组播源IP地址、组播群组IP地址和MPLS标签;将BGP下一跳地址设 置为BGP更新消息中的初始PMBR/MMBR路由器IP地址;将出接口设置为通往BGP 下一跳地址的接口;将顶层标签设置为NULL;将是否进行了路径聚合项设置为 否(FALSE)。组播源PMBR/MMBR的组播边缘路由表MBRF更新触发MPLS信令协 议(RSVP或LDP)向下游路由器发送标签请求消息,发起组播LSP路径的建立 过程。 步骤5:组播用户1的PMBR/MMBR收到标签请求消息后,为组播LSP路径分 配一个MPLS标签,并逐跳向组播源PMBR/MMBR发送标签映射消息。 步骤6:组播源PMBR/MMBR收到标签映射消息后,组播LSP路径建立成功, 组播源PMBR/MMBR将其下一跳路由器分配的MPLS标签填充到组播边缘路由表 MBRF的顶层标签域。 步骤7:组播用户2想要加入相同的组播群组,它首先向组播用户2的DR 发送IGMP/MLD加入消息。 步骤8:组播用户2的DR收到IGMP消息后,经过PIM协议处理,并在组播 路由表中建立(*,组播群组地址)路由项;组播用户2的DR上的PIM协议生 成PIM加入消息,该消息被逐跳发送到组播用户2的PMBR/MMBR。 步骤9:组播用户2的PMBR/MMBR收到PIM加入消息后,对其进行处理,过 程与步骤3相同。 步骤10:组播源PMBR/MMBR收到BGP更新消息后,在其组播边缘路由表MBRF 查找到有一条路由表项的<源地址,目的地址,底层标签>域和BGP更新消息中 携带的路由信息相同,不再建立一条新的路由表项。组播源PMBR/MMBR更新查 找到的路由表项中的信息,将BGP更新消息中的初始PMBR/MMBR路由器IP地址 添加到BGP下一跳域中;将通往新BGP下一跳地址的接口添加到出接口域中。 组播源PMBR/MMBR的组播边缘路由表MBRF更新触发MPLS信令协议(RSVP或LDP) 向下游路由器发送标签请求消息,发起组播LSP路径的建立过程。 步骤11:组播用户2的PMBR/MMBR收到标签请求消息后,为组播LSP路径 分配一个MPLS标签,并逐跳向组播源PMBR/MMBR发送标签映射消息。 步骤12:组播源PMBR/MMBR收到标签映射消息后,新的分支组播LSP路径 建立成功。 步骤13:组播用户3想要加入相同的组播群组,它首先向组播用户3的DR 发送IGMP/MLD加入消息。 步骤14:组播用户3的DR收到IGMP消息后,经过PIM协议处理,并在组 播路由表中建立(*,组播群组地址)路由项;组播用户3的DR上的PIM协议 生成PIM加入消息,该消息被逐跳发送到组播用户3的PMBR/MMBR。 步骤15:组播用户3的PMBR/MMBR收到PIM加入消息后,经过查找发现标 签转发表有匹配hash结果的表项,组播边缘路由表MPRF中都有匹配<*,组播 群组地址,hash结果>的表项。组播用户3的PMBR/MMBR将PIM加入消息到达的 接口添加到标签转发表中的出接口项,同时添加到组播路由转发表中的出接口 项。组播用户3的PMBR/MMBR并不触发新的BGP更新消息发送。 终端组播用户退出组播组的过程和加入组播组的过程类似,只是将添加路 由表项改为删除,将增加组播LSP路径分支改为拆除。 该体系结构中的网络组播数据转发过程按下面步骤完成: 步骤16:组播源以IP报文格式发送组播数据,组播数据首先在边缘IP-ba
sed PIM域中进行转发,最终到达组播源PMBR/MMBR。 步骤17:组播源PMBR/MMBR查询组播边缘路由表MBRF,查找到匹配组播源 地址和组播群组地址的路由表项。组播源PMBR/MMBR首先把匹配路由表项的底 层MPLS标签(组播群组地址的hash结果)推送到标签堆栈上,使其成为底部(或 内部)标签。组播源PMBR/MMBR把匹配路由表项的顶层标签推送到标签堆栈上, 使其成为顶部(或路由器)标签。在创建标签堆栈后,组播源PMBR/MMBR沿着 从组播LSP路径,把MPLS分组从所有的出接口发送到第一跳组播MPLS路由器 MMR上。 步骤18:组播LSP路径上的所有MMR路由器根据顶部标记,在运营商核心 网中交换分组,并在组播LSP路径分支的地方对MPLS分组进行复制转发。在组 播用户PMBR/MMBR路由器的上一跳路由器,MPLS分组被弹出顶部标签(暴露底 部或内部标签)。暴露底部标签的MPLS分组转发到组播LSP路径的出口(组播 用户PMBR/MMBR路由器)上。 步骤19:组播用户PMBR/MMBR收到分组后,弹出MPLS分组中的底部标签, 并以底部标签为索引查找标签转发表,获得该分组的所有出接口。组播用户 PMBR/MMBR将IP报文格式的组播数据从所有的出接口转发到边缘IP-ba
sedxa0PIM 组播域。 步骤20:边缘IP-ba
sedxa0PIM组播域中的路由器收到组播数据后,根据PIM 组播路由表的路由信息将组播数据发送到终端组播用户。 步骤21:终端组播用户收到组播数据,对其进行处理。